package org.infodavid.common.model.security;

import org.infodavid.common.model.IUser;
import org.infodavid.common.model.IUserGroup;
import org.infodavid.common.persistence.IBasicDataObject;

/**
 * The Interface ISecurityIdentifier.
 */
public interface ISecurityIdentifier extends IBasicDataObject {

  /** The GROUP. */
  String GROUP = "group";

  /** The USER. */
  String USER = IUser.USER;

  /** The ROLE. */
  String ROLE = IUserGroup.ROLE;

  /**
   * Gets the group.
   * @return the group
   */
  IUserGroup getGroup();

  /**
   * Sets the group.
   * @param value the new group
   */
  void setGroup(IUserGroup value);

  /**
   * Gets the user.
   * @return the user
   */
  IUser getUser();

  /**
   * Sets the user.
   * @param value the new user
   */
  void setUser(IUser value);

  /**
   * Gets the role.
   * @return the role
   */
  IUserGroup.EUserRole getRole();

  /**
   * Sets the role.
   * @param value the new role
   */
  void setRole(IUserGroup.EUserRole value);
}
